The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for effective migration and upgrade of virtual machines in cloud environments.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet). Cloud computing entrusts remote services with a user's data, software and computation. Using software as a service, users also rent application software and databases. The cloud providers manage the infrastructure and platforms on which the applications run. End users may access cloud-based applications through a web browser or a light-weight desktop or mobile app while the business software and user data are stored on servers at a remote location.
In the software-as-a-service (SaaS) model, cloud providers install and operate application software in the cloud, and cloud users access the software from cloud clients. The cloud users do not manage the cloud infrastructure and platform on which the application is running. This eliminates the need to install and run the application on the cloud user's own computers, simplifying maintenance and support. What makes a cloud application different from other applications is its elasticity. This can be achieved by cloning tasks onto multiple virtual machines at run-time to meet the changing work demand. Load balancers distribute the work over a set of virtual machines. This process is inconspicuous to the cloud user who sees only a single access point.